package br.ufrn.engcomp.comum.web;

import java.io.Serializable;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import br.ufrn.engcomp.arq.web.AbstractController;
import br.ufrn.engcomp.comum.dominio.Pessoa;

/**
 *
 *@author Claudio Trindade
 *
 */

@ManagedBean
@SessionScoped
public class PessoaMBean extends AbstractController<Pessoa>  implements Serializable {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	private CidadeMBean cidade;
	private EscolaridadeMBean escolaridade;
	private EstadoCivilMBean estadoCivil;
	private LogradouroMBean logradouro;
	private SexoMBean sexo;
	private UfMBean uf;
	
	public PessoaMBean() { 
		super(); 
	} 
	
	@Override 
	protected void initializeEntity() { 
		setEntidade(new Pessoa());		
		
		cidade = new CidadeMBean();
		escolaridade = new EscolaridadeMBean();
		estadoCivil = new EstadoCivilMBean();
		logradouro = new LogradouroMBean();
		sexo = new SexoMBean();
		uf = new UfMBean();
		
		cidade.list();
		escolaridade.list();
		estadoCivil.list();
		logradouro.list();
		sexo.list();
		uf.list();
	}

	public CidadeMBean getCidade() {
		return cidade;
	}

	public void setCidade(CidadeMBean cidade) {
		this.cidade = cidade;
	}

	public EscolaridadeMBean getEscolaridade() {
		return escolaridade;
	}

	public void setEscolaridade(EscolaridadeMBean escolaridade) {
		this.escolaridade = escolaridade;
	}

	public EstadoCivilMBean getEstadoCivil() {
		return estadoCivil;
	}

	public void setEstadoCivil(EstadoCivilMBean estadoCivil) {
		this.estadoCivil = estadoCivil;
	}

	public LogradouroMBean getLogradouro() {
		return logradouro;
	}

	public void setLogradouro(LogradouroMBean logradouro) {
		this.logradouro = logradouro;
	}

	public SexoMBean getSexo() {
		return sexo;
	}

	public void setSexo(SexoMBean sexo) {
		this.sexo = sexo;
	}

	public UfMBean getUf() {
		return uf;
	}

	public void setUf(UfMBean uf) {
		this.uf = uf;
	}
	
	@Override
	public void saveOrUpdate() {
		super.saveOrUpdate();
		forward("/sucesso.xhtml");
	}
	
	public void forwardCadastro() {
		forward("/pessoa/formPessoa.xhtml");
	}
	
	public void forwardLista() {
		list();
		forward("/pessoa/listaPessoa.xhtml");
	}
	
	public void actionVoltar() {
		forward("/menuPrincipal.xhtml");
	}
	
	public void actionCancelar() {
		initializeEntity();
		forward("/menuPrincipal.xhtml");
	}
	
	public void actionAlterar() {
		forward("/pessoa/alterarPessoa.xhtml");
	}
	
	public void actionDeletar() {
		delete();
	}
	
}
